import logging

from autogen_agentchat import TRACE_LOGGER_NAME
from autogen_agentchat.agents import AssistantAgent, UserProxyAgent
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient

from backend.agents.base.base_assistant_agent import BaseAssistantAgent
from backend.teams.bulter_group_chat import EliteGroupChat

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger("custom")
logger.setLevel(logging.DEBUG)
model_client = OpenAIChatCompletionClient(model="modelscope.cn/Qwen/Qwen2.5-7B-Instruct-GGUF:q5_k_m",
                                          model_info={
                                              "vision": False,
                                              "function_calling": True,
                                              "family": "Qwen3",
                                              "structured_output": True,
                                              "json_output": True,
                                          },
                                          api_key="ollama",
                                          base_url="http://127.0.0.1:11434/v1")
# 定义一个简单的工具
async def search_info_from_web(query: str) -> str:
    """通过互联网检索信息"""
    return """
    民国13年即1924年，这一年发生了许多重要事件，以下是一些主要的事件：
    - **政治方面**：
        - 1月20日-30日，中国国民党在广州举行第一次全国代表大会。大会通过了以反帝反封建为主要内容的宣言，确定了联俄、联共、扶助农工的三大政策，把旧三民主义发展为新三民主义。
        - 10月23日，冯玉祥发动北京政变，囚禁曹锟，推翻曹锟、吴佩孚控制的北京政府，皖系军阀段祺瑞任临时执政。冯玉祥将所部改称国民军，同情广东革命政府，并电邀孙中山北上，共商和平统一大业。
        - 11月10日，孙中山在中国共产党的支持下决定北上，争取国家的和平统一，并发表《北上宣言》，提出召开国民会议和废除不平等条约两大主张。
    - **军事方面**：
        - 5月5日，黄埔军校第一期学员开始入学，6月16日正式举行开学典礼。孙中山兼任军校总理，廖仲恺任校党代表，蒋介石任校长。周恩来等共产党人先后在该校担任政治领导工作。
        - 11月，周恩来主持的中共广东区委组建大元帅大本营铁甲车队，这实际上是由中国共产党领导的最早的一支革命武装。
    - **工人运动方面**：
        - 2月7日，全国铁路工人代表大会在北京秘密召开，会上正式成立全国铁路总工会。
        - 7月15日，广州沙面数千工人举行罢工，反对英、法帝国主义“不准中国人自由出入租界”的“新警律”。罢工坚持一个多月，取得胜利。
    - **农民运动方面**：
        - 7月3日，第一届农民运动讲习所在广州正式开学。至1925年12月连续举办了五届，为广东及附近省区共训练了农运骨干四百五十多人。
        - 12月12日，广东省广宁农会在彭湃和周其鉴的领导下，发动农民开展减租运动，广东革命政府派铁甲车队前往支持。
    - **地方事件方面**：
        - 夏，陕北十里盐湾盐工三百多人冲击三皇峁盐局，陕北镇守使井岳秀欲派兵弹压，经杜斌丞周旋作罢。
        - 1月，《椒江日报》创刊于海门。春，台州第一个中国共产党组织在省立甲种水产学校建立。
    """

async def write_file(file_path: str, content: str) -> None:
    """将内容写入文件"""
    with open(file_path, "w", encoding="utf-8") as file:
        file.write(content)

async def test_bulter():
    assistant =BaseAssistantAgent(
        name="lolly",
        model_client=model_client,
        system_message="你是一个情报员，善于使用工具在互联网中搜索信息。并将文件写入到指定的文件out_put.txt中。",
        tools=[search_info_from_web]
    )
    user_proxy =UserProxyAgent(
        name="user_proxy",input_func=input
    )
    write_assistant = AssistantAgent(
        name="write_assistant",
        model_client=model_client,
        system_message="你是一个文件写入助手，你可以将内容写入到指定的文件中。",
        tools=[write_file]
    )

    team =EliteGroupChat(
        participants=[assistant,write_assistant],
        model_client=model_client,
        emit_team_events=True
    )
    await team.run(task="从网络中搜索民国13年发生的历史事件")

if __name__ == "__main__":
    import asyncio
    asyncio.run(test_bulter())

